﻿/*+===================================================================
File:      CGunBlock.h

Summary:   Định nghĩa lớp CGunBlock
===================================================================+*/

#ifndef _GUNBLOCK_H_
#define _GUNBLOCK_H_

#include "GameObject.h"
#include "Bill.h"
#include "Gun.h"

/*C+==================================================================
Class:    CGunBlock

Summary:  Lớp CGunBlock.
==================================================================-C*/
class CGunBlock : public CMoveableObject
{
private:

	enum Status
	{
		CloseForever,
		Close,
		Changing,
		Open,
	};

	CSprite* m_pGunSprite;     // Sprite của súng.
	CSprite* m_pBaseSprite;    // Sprite của bệ để súng.

	CBill* m_bill;             // Con trỏ đến đối tượng bill.

	Status m_nStatus;

	float m_fRotateAngle;      // Góc quay của ụ súng.

	float m_fFireAngle;        // Góc bắn của ụ súng.

	CGun* m_pGun;

	float m_fTimeAnimation;   // Thời gian thực hiện animation đóng mở.

	float m_fTimeRotate;         // Thời gian bắn giữ 2 lần.

	void UpdateAnimation();
public:
	CGunBlock(CBill* bill, D3DXVECTOR2 pos, int id, int typeId);
	~CGunBlock();

	void Update(float timeFrame);

	void UpdateCollision(vector<CGameObject*> vecGameObjs, float timeFrame);

	void Draw();

	bool Kill();
};

#endif